UNIX is known for the ease with which its tty device drivers can be overrun by input. (This causes data to be lost.) MacLayers provides time delay options which can be set for pasting text into a window. (Data pasted into a window is sent on to the host.) The options to control inter-character and inter-line pasting delays are in the Control menu's "File Transfer" dialog.
Preferences Menu Item
The Control menu's Preferences menu-pick provides user selectable options for highlighted text format and cursor display, among other things.
Window or Selection Printing
The entire window or the current selection may be printed by activating the File menu "Print" entry.
Vertical Window Scrolling With Keyboard Keys
If "Record Lines Off Top" is selected under the Control menu for the current layer, MacLayers maintains a logfile which can be examined through the vertical scrollbars. The active window can also be scrolled via the key sequences given below.
Scroll Back One Page:
 
Scroll Forward One Page:
 
Note: Adding [option] to either of the above causes MacLayers to scroll by single lines rather than by pages.
Scroll to Top of File:
 
Scroll to End of File:
 
Horizontal Window Movement With Keyboard Keys
MacLayers does not directly support horizontal scrolling of window contents. However, the entire window can be easily moved right or left with keyboard sequences. Requesting a movement right or left will bring the opposite edge of the window into view on the screen. If the opposite edge is already in view then the window is moved still further in the indicated direction.
This capability when used with the vertical scrolling key sequences allows small screen Macintosh users to comfortably manipulate windows that are wider than the screen.
Here are the key sequences provided. The second sequence for each option is an alternate provided only for keyboards not having arrow keys:
Move Window Left:
 
Move Window Right:
 
Note: The [<] and [>] keys can be used as substitutes for the left and right arrow keys on keyboards without arrow keys.
Special Keyboard Sequences [Escape, Control, Meta, Null]
Some older keyboards do not have an [ESC] key. MacLayers allows the backquote [`] key to be used as Escape on these keyboards; simply select "Substitute ESC for '`' " from the Terminal dialog under the Control menu. With this option selection, the backquote is still available as Control-backquote (Since most users of this feature will have a keyboard with no explicit [control] key, see below for details on simulating Control).
MacLayers allows the user to select one of three modifier keys to act as the Control key. By default, MacLayers maps [control] to Control. However, the user can also configure [option] or [command] to act as control through the Terminal dialog under the Control menu; this is useful with keyboards which do not possess a [control] key. Note that when [command] is used as control, [option] acts as the keyboard-equivalent modifier for menu picks; this violates Apple Human Interface Guidelines, but makes certain rather vocal MacLayers' users happy.
The following three tables summarize how the [contol], [option], and [command] keys work, depending on how the [control] key is configured:
Note: MacLayers implements the Meta key by prepending [ESC] to the modified key.
For users requiring the generation of ASCII NUL (a zero byte, sometimes called the IDLE character) an alternative to [control]-[@] (also [control]-[2]) is to issue [control]-[space]. This follows VT100 terminal convention.
Note: To take advantage of most of the features described above, System 7 users of MacLayers will need to install the MacLayers Keyboard in their System file. Simply drag it over the System folder (or System file) to install it. It has changed from previous versions. System 6 users will need to make certain that "Local KCHR Translation" is turned on in the Terminal dialog under the Control menu.
Text Find Capabilities
The Find menu items allow searching windows for specific contents or going to the current selection.
Iconed Window Capability
A unique feature of MacLayers is the ability to shrink a window to an icon. While iconed, the window will still actively display its contents and scroll just like a standard sized window.
To iconize a window, simply double-click its title bar or select the Iconize menu item from the Layers menu. While iconed the window may be moved around just like a Finder Icon and the miniaturized window retains its own independent location.
A window is deiconized when you double click it, type input to it as the top window, select it with a Layers menu item, or select the "Deiconize Layer" menu item.
Just for fun, MacLayers allows you to scroll a iconed window with the vertical scroll keys (defined earlier) without causing it to deiconize.
For users running under MultiFinder, standard windows can be auto-iconed temporarily while MacLayers is not the front most application. A check box in the Preferences menu dialog box enables this action. Holding the shift key down while switching to another application will temporarily reverse the auto-iconing setting.
Icons to Default Positions
This menu selection in the Control menu item resets the positions of all iconed windows so that, when iconed, they appear along the top, right, left or bottom of the screen. There is also an option to place iconed windows along the bottom such that only the titles show. This allows the user to treat the titles of iconed windows as though they are buttons at the bottom of the screen. By double clicking the button (which is really the title of the iconed window) the window returns to its full size.
The menu item simply resets the position for all icon windows to the designated choice selected in the Preferences dialog. They may then be moved again by you to other areas of the screen.
Shrink Window To Title
At times the desktop becomes too cluttered so MacLayers provides yet another feature to ease the busy desktop problem. Any MacLayers window can be shrunk to just its title bar by shift-double-clicking the title bar or selecting the Titleize item from the Layers menu item. In effect the window is still there but only the title bar remains visible. The window remains titled even if output is being sent to it. Moving the title bar has the same effect as moving the window.
The window may be detitleized by double-clicking the title bar or selecting the Detitleize item from the Layers menu.
Hide Window Capability
You may also completely hide any MacLayers window at any time by selecting the Hide item from the Layers menu. The window will stay hidden until output is sent to it from the host or you reactivate it from the Layers menu.
Cycling Through Windows
All active MacLayers windows may be displayed one after the other in numerical order by selecting the Layers menu "Cycle Forward" or "Cycle Backword" items. Hidden windows do not appear in the cycle list.
Specifying a Layer Window Title
The 'layertitle' UNIX command provided with this package allows a single argument (which may be a string) to specify a title to be displayed for the controlling window of the process. The source for this command should compile and execute on any UNIX system and so can be used even for windows which are logged into remote hosts.
An example use of this feature is to create your own "cd" directory change shell command and have it always display the current directory name in the title bar.
Sending an Interrupt to a Window Process
The "Send Interrupt To Layer" item of the Layers menu causes an internal packet to be sent to the host indicating that a SIGINT signal be sent to the UNIX process group attached to the window. This is only available in layers mode, as a last resort to interrupt processes in certain situations. It will rarely, if ever, be needed by the average user.
Reset Terminal
Occasionally you may have bad data transmitted to the Macintosh which can cause the VT100 emulation to enter a special graphics mode or setup a VT100 screen scrolling area smaller than your full window size. If this occurs, the Control menu item "Reset Terminal" will reinstate normal operation. This in no way affects layers mode operation.
Sending Break in Layers Mode
A hardware 'break' can be placed on the host serial line with the Control menu "Send Hardware Break" item (which also has a keyboard equivalent). However, when in layers mode this is only allowed if the line is idle to guarantee that no internal control packets become garbled or lost. A beep occurs when the line is busy.
Aborting Current Activity
Paste and download operations may be aborted by entering [command]-[.] (period).
Disk Full Processing
MacLayers will put up a warning box and delete all data in the scroll file up to the current output position if the disk where the file resides becomes completely filled.
Saving Window Sizes/Positions and Automatically Starting Layers at Startup
Beginning with v1.30 of MacLayers, you can save window positions and sizes across layers-mode invocations, including having these windows automatically startup when you begin layers mode.
Layers are stored in a file called .layersrc, which should exist in the user's home directory.
A sample file .layersrc file is included with the UNIX distribution; it is named layersrc and can be moved to the home directory and renamed to be used as a demonstration.
Each non-comment line in the .layersrc file that follows the following format:
will cause additional MacLayers windows to opened when layers mode is started. Note: There is no way to reposition the initial login window when layers mode starts up.
The layer keyword can be followed by the following optional arguments:
FLAG LONG FLAG ARGS NOTES
---- ----------- ---- -----
-l -login makes window a login window
-g -geometry wwxhh sizes window to be ww columns
wide by hh lines high
wwxhh+xx+yy sizes window (see above) and
also places it at (+xx,+yy)
on the host Macintosh screen;
note that -xx or -yy are also
valid (but refer to (0,0)
-t -title string sets window title to the first
twenty-nine characters of
'string'
-e -exec command [args] specifies program and any
command line arguments to
be run in the layer; because
all remaining tokens are taken
as command line arguments for
command, this must always be
So, for example, the following line in a .layersrc file, would cause a new window to be automatically started running the default shell, with size 80 x 25 characters, positioned at pixel coordinates (0, 146) on the client Macintosh screen and titled "80x25".
layer -geometry 80x25+0+146 -title 80x25
Please note that the .layersrc file does not execute as a script. Thus, various things one can do inside .cshrc, .pofile, .login, etc files are not valid in the .layersrc file. This may change.
Note: The -geometry argument can also be given to the layers command to size and position new shells from the command-line after layers mode has been invoked.
LAYER Environment Variable
Every process attached to a MacLayers window automatically has a LAYER environment variable set and initialized to a string representing the window layer number. This variable can be used to determine when a shell (or other process) is running in a MacLayers window. For example, the following csh login script (which can be inserted into your .login or .cshrc file) implements such a capability:
# Check if running under MacLayers:
if ${?LAYER} then
echo "This is layer" $LAYER "."
else
echo "Not running under layers."
endif
Note that if you remotely login to another host from a MacLayers window, you will start up another shell which will inherit a new environment that does not have the LAYER variable set.